// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import com.fowo.api.sys.entity.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * FbaShipment
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "fba_shipment", autoResultMap = true)
@Schema(title = "fba货件")
public class FbaShipment implements Serializable {

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @JoinField(SysUser.class)
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 货件编号
   */
  @TableField(value = "`shipment_id`")
  @Schema(title = "货件编号")
  private String shipmentId;

  /**
   * 店铺
   */
  @TableField(value = "`shop`")
  @JoinField(ShopInfo.class)
  @Schema(title = "店铺")
  private Long shop;

  /**
   * 国家
   */
  @TableField(value = "`country`")
  @Schema(title = "国家")
  private String country;

  /**
   * 发货地址
   */
  @TableField(value = "`send_address`")
  @JoinField(FBAAddress.class)
  @Schema(title = "发货地址")
  private Long sendAddress;

  /**
   * 物流中心编码
   */
  @TableField(value = "`destination_fulfillment_center_id`")
  @Schema(title = "物流中心编码")
  private String destinationFulfillmentCenterId;

  /**
   * 工厂直发 (1 - 是; 0 - 否; )
   */
  @TableField(value = "`factory_direct_delivery`")
  @Schema(title = "工厂直发")
  private String factoryDirectDelivery;

  /**
   * 同步时间
   */
  @TableField(value = "`sync_time`")
  @Schema(title = "同步时间")
  private String syncTime;

  /**
   * 货件状态
   */
  @TableField(value = "`shipment_status`")
  @Schema(title = "货件状态")
  private String shipmentStatus;

  /**
   * 是否已完成状态 (0 - 进行中; 1 - 已完成; )
   */
  @TableField(value = "`is_closed`")
  @Schema(title = "是否已完成状态")
  private String isClosed;

  /**
   * 标签类型 (SELLER_LABEL - 卖家自己贴标签; AMAZON_LABEL_ONLY - 仅限亚马逊标签; )
   */
  @TableField(value = "`label_type`")
  @Schema(title = "标签类型")
  private String labelType;

  /**
   * 货件名称
   */
  @TableField(value = "`shipment_name`")
  @Schema(title = "货件名称")
  private String shipmentName;

  /**
   * 包装类型
   */
  @TableField(value = "`packing_type`")
  @Schema(title = "包装类型")
  private String packingType;

  /**
   * 发货单
   */
  @TableField(value = "`invoice_no`")
  @Schema(title = "发货单")
  private String invoiceNo;

  /**
   * 集装箱任务单号
   */
  @TableField(value = "`containertask_no`")
  @Schema(title = "集装箱任务单号")
  private String containertaskNo;

  /**
   * Reference_ID
   */
  @TableField(value = "`reference_id`")
  @Schema(title = "Reference_ID")
  private String referenceId;

  /**
   * 发货方名称
   */
  @TableField(value = "`consigner_name`")
  @Schema(title = "发货方名称")
  private String consignerName;

  /**
   * 电话号码
   */
  @TableField(value = "`phone`")
  @Schema(title = "电话号码")
  private String phone;

  /**
   * 发货国家(地区)
   */
  @TableField(value = "`shipments_country`")
  @Schema(title = "发货国家(地区)")
  private String shipmentsCountry;

  /**
   * 街道地址1
   */
  @TableField(value = "`street_address`")
  @Schema(title = "街道地址1")
  private String streetAddress;

  /**
   * 街道地址2
   */
  @TableField(value = "`street_address2`")
  @Schema(title = "街道地址2")
  private String streetAddress2;

  /**
   * 市
   */
  @TableField(value = "`city`")
  @Schema(title = "市")
  private String city;

  /**
   * 区
   */
  @TableField(value = "`county`")
  @Schema(title = "区")
  private String county;

  /**
   * 省（洲）
   */
  @TableField(value = "`province`")
  @Schema(title = "省（洲）")
  private String province;

  /**
   * 邮编
   */
  @TableField(value = "`postcode`")
  @Schema(title = "邮编")
  private String postcode;

  /**
   * 备注
   */
  @TableField(value = "`remark`")
  @Schema(title = "备注")
  private String remark;

  /**
   * 是否从亚马逊后台同步还是erp创建，0：erp创建，1：亚马逊同步 (0 - erp创建; 1 - 亚马逊同步; )
   */
  @TableField(value = "`is_synchronous`")
  @Schema(title = "是否从亚马逊后台同步还是erp创建，0：erp创建，1：亚马逊同步")
  private String isSynchronous;

  /**
   * 是否上传了装箱信息 (0 - 未上传; 1 - 已上传; )
   */
  @TableField(value = "`is_uploaded_box`")
  @Schema(title = "是否上传了装箱信息")
  private String isUploadedBox;

  /**
   * 创建时间
   */
  @TableField(value = "`working_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date workingTime;

  /**
   * 发货时间
   */
  @TableField(value = "`shipped_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "发货时间")
  private java.util.Date shippedTime;

  /**
   * 签收时间
   */
  @TableField(value = "`receiving_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "签收时间")
  private java.util.Date receivingTime;

  /**
   * 完成时间
   */
  @TableField(value = "`closed_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "完成时间")
  private java.util.Date closedTime;

  /**
   * 配送地址
   */
  @TableField(value = "`shipping_address`")
  @Schema(title = "配送地址")
  private String shippingAddress;

  /**
   * 店铺名称
   */
  @TableField(value = "`shop_name`")
  @Schema(title = "店铺名称")
  private String shopName;

  /**
   * 货件类型 (SP - 小包裹快递（SPD）; LTL - 汽运担 (LTL); )
   */
  @TableField(value = "`shipmenttype`")
  @Schema(title = "货件类型")
  private String shipmenttype;

  /**
   * 承运人 (0 - 其他承运人; 1 - 亚马逊承运; )
   */
  @TableField(value = "`carrier`")
  @Schema(title = "承运人")
  private String carrier;

  /**
   * 承运方式 (OTHER - OTHER; )
   */
  @TableField(value = "`transportmethod`")
  @Schema(title = "承运方式")
  private String transportmethod;

  /**
   * 装箱上传渠道 (0 - 系统内; 1 - 亚马逊后台; )
   */
  @TableField(value = "`packinguploadchannel`")
  @Schema(title = "装箱上传渠道")
  private String packinguploadchannel;
}
